<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <script>
        //新增数据类型 1.Symbol 2.bigInt
        //一. Symbol :独一无二的值   (随机生成一个唯一的id)
        //使用:   是一种类型,简单的数据类型
        // let s = Symbol();
        // console.log(s); // Symbol()
        // let s2 = Symbol();
        // console.log(s2); // Symbol()
        // console.log(s === s2);// false

        //可以给标识符
        //标识符  类似 注释 没有实际的意义
        // let s = Symbol("key1");
        // let s2 = Symbol("key2");
        // console.log(s, s2); // Symbol(key1) Symbol(key2)

        let s1 = Symbol("key");
        let s2 = Symbol("key");
        console.log(s1 === s2); //false


        //使用场景
        // 1.模拟私有成员
        let obj = {
            name: "张三",
            age: 20,
            [Symbol()]: "100kg"
        }
        console.log(obj); //{name: '张三', age: 20, Symbol(): '100kg'}
        console.log(obj.name); //张三
        console.log(obj[Symbol()]); // undefined
        let s = Object.getOwnPropertySymbols(obj)[0];
        console.log(s); // Symbol()
        console.log(obj[s]); // 100kg


        //2.特别需求
        let cate = {
            person: Symbol(),
            animal: Symbol()
        }

        function getCate(type) {
            if (type === cate.person) {
                console.log("人类");
            } else {
                console.log("动物");
            }
        }
        getCate(cate.person);// 人类
        getCate(cate.animal);// 动物
    </script>
</body>

</html>